home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2 Examples.sit
/
Raven 1.2 Examples
/
Quill
/
Source
/
TextBoxEditor.cpp
< prev
next >
Wrap
Text File
|
1997-05-11
|
6KB
|
196 lines
/*
* File: TextBoxEditor.cpp
* Summary: A view that knows how to edit a TTextBox.
* Written by: Jesse Jones
*
* Copyright ゥ 1996 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <-> 11/03/96 JDJ Created
*/
#include "TextBoxEditor.h"
#include <ZBehaviors.h>
#include <ZColorSwatch.h>
#include <ZControl.h>
#include <ZTextBox.h>
#include "RsrcPopupMenu.h"
// ===================================================================================
// class CEditTextBoxCommand
// ===================================================================================
//---------------------------------------------------------------
//
// CEditTextBoxCommand::~CEditTextBoxCommand
//
//---------------------------------------------------------------
CEditTextBoxCommand::~CEditTextBoxCommand()
{
}
//---------------------------------------------------------------
//
// CEditTextBoxCommand::CEditTextBoxCommand
//
//---------------------------------------------------------------
CEditTextBoxCommand::CEditTextBoxCommand(TTextBox* pane, const STextBoxInfo& oldInfo, const STextBoxInfo& newInfo) : Inherited(pane, oldInfo, newInfo)
{
}
//---------------------------------------------------------------
//
// CEditTextBoxCommand::UpdatePane
//
//---------------------------------------------------------------
void CEditTextBoxCommand::UpdatePane(const STextBoxInfo& info)
{
mPane->SetText(info.text);
mPane->SetWordWrap(info.wrap);
mPane->SetDrawFrame(info.drawFrame);
mPane->SetOutlineHilite(info.outlineHiliting);
mPane->HandleEnable(info.enabled);
mPane->SetTextTraits(info.traitsID);
mPane->SetFrameColor(info.frameColor);
mPane->SetBackColor(info.backColor);
mPane->SetInsetBy(info.insetTextBy);
}
#pragma mark -
// ===================================================================================
// CTextBoxEditor
// ===================================================================================
static TReanimatorRegister<CTextBoxEditor> sTextBoxEditorRegistrar;
//---------------------------------------------------------------
//
// CTextBoxEditor::~CTextBoxEditor
//
//---------------------------------------------------------------
CTextBoxEditor::~CTextBoxEditor()
{
}
//---------------------------------------------------------------
//
// CTextBoxEditor::CTextBoxEditor
//
//---------------------------------------------------------------
CTextBoxEditor::CTextBoxEditor(TView* superView) : Inherited(superView)
{
}
//---------------------------------------------------------------
//
// CTextBoxEditor::Create [static]
//
//---------------------------------------------------------------
MReanimatable* CTextBoxEditor::Create(MReanimatable* parent)
{
return new CTextBoxEditor(dynamic_cast<TView*>(parent));
}
//---------------------------------------------------------------
//
// CTextBoxEditor::GetEditorInfo
//
//---------------------------------------------------------------
STextBoxInfo CTextBoxEditor::GetEditorInfo() const
{
STextBoxInfo info;
TTextBox* textBox = nil;
TControl* control = nil;
TColorSwatch* color = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Text"));
info.text = textBox->GetText();
control = dynamic_cast<TControl*>(this->FindSubPane("Wrap"));
info.wrap = control->GetValue();
control = dynamic_cast<TControl*>(this->FindSubPane("Draw Frame"));
info.drawFrame = control->GetValue();
control = dynamic_cast<TControl*>(this->FindSubPane("Outline"));
info.outlineHiliting = control->GetValue();
control = dynamic_cast<TControl*>(this->FindSubPane("Enabled"));
info.enabled = control->GetValue();
CRsrcPopupMenu* popup = dynamic_cast<CRsrcPopupMenu*>(this->FindSubPane("Traits ID"));
info.traitsID = popup->GetID();
color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Frame Color"));
info.frameColor = color->GetColor();
color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Back Color"));
info.backColor = color->GetColor();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetX"));
info.insetTextBy.h = textBox->GetValue();
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetY"));
info.insetTextBy.v = textBox->GetValue();
return info;
}
//---------------------------------------------------------------
//
// CTextBoxEditor::SetEditorInfo
//
//---------------------------------------------------------------
void CTextBoxEditor::SetEditorInfo(const STextBoxInfo& info)
{
TTextBox* textBox = nil;
TControl* control = nil;
TColorSwatch* color = nil;
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("Text"));
textBox->SetText(info.text);
control = dynamic_cast<TControl*>(this->FindSubPane("Wrap"));
control->SetValue(info.wrap);
control = dynamic_cast<TControl*>(this->FindSubPane("Draw Frame"));
control->SetValue(info.drawFrame);
control = dynamic_cast<TControl*>(this->FindSubPane("Outline"));
control->SetValue(info.outlineHiliting);
control = dynamic_cast<TControl*>(this->FindSubPane("Enabled"));
control->SetValue(info.enabled);
CRsrcPopupMenu* popup = dynamic_cast<CRsrcPopupMenu*>(this->FindSubPane("Traits ID"));
popup->SetID(info.traitsID);
color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Frame Color"));
color->SetColor(info.frameColor);
color = dynamic_cast<TColorSwatch*>(this->FindSubPane("Back Color"));
color->SetColor(info.backColor);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetX"));
textBox->SetValue(info.insetTextBy.h);
textBox = dynamic_cast<TTextBox*>(this->FindSubPane("InsetY"));
textBox->SetValue(info.insetTextBy.v);
}